home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / srcuc.zip / FIXOBJ.H < prev    next >
Text File  |  1991-05-04  |  5KB  |  106 lines

  1. /* -*-C-*-
  2.  
  3. $Header: /scheme/microcode/RCS/fixobj.h,v 9.30 1991/05/05 00:29:26 jinx Exp $
  4.  
  5. Copyright (c) 1987-91 Massachusetts Institute of Technology
  6.  
  7. This material was developed by the Scheme project at the Massachusetts
  8. Institute of Technology, Department of Electrical Engineering and
  9. Computer Science.  Permission to copy this software, to redistribute
  10. it, and to use it for any purpose is granted, subject to the following
  11. restrictions and understandings.
  12.  
  13. 1. Any copy made of this software must include this copyright notice
  14. in full.
  15.  
  16. 2. Users of this software agree to make their best efforts (a) to
  17. return to the MIT Scheme project any improvements or extensions that
  18. they make, so that these may be included in future releases; and (b)
  19. to inform MIT of noteworthy uses of this software.
  20.  
  21. 3. All materials developed as a consequence of the use of this
  22. software shall duly acknowledge such use, in accordance with the usual
  23. standards of acknowledging credit in academic research.
  24.  
  25. 4. MIT has made no warrantee or representation that the operation of
  26. this software will be error-free, and MIT is under no obligation to
  27. provide any services, by way of maintenance, update, or otherwise.
  28.  
  29. 5. In conjunction with products arising from the use of this material,
  30. there shall be no use of the name of the Massachusetts Institute of
  31. Technology nor of any adaptation thereof in any advertising,
  32. promotional, or sales literature without prior written consent from
  33. MIT in each case. */
  34.  
  35. /* Declarations of user offsets into the Fixed Objects Vector.
  36.    This should correspond to the file "utabmd.scm". */
  37.  
  38. #define Non_Object        0x00    /* Used for unassigned variables. */
  39. #define System_Interrupt_Vector    0x01    /* Handlers for interrups. */
  40. #define System_Error_Vector    0x02    /* Handlers for errors. */
  41. #define OBArray            0x03    /* Array for interning symbols. */
  42. #define Types_Vector        0x04    /* Type number -> Name map. */
  43. #define Returns_Vector        0x05    /* Return code -> Name map. */
  44. #define Primitives_Vector    0x06    /* Primitive code -> Name map. */
  45. #define Errors_Vector        0x07    /* Error code -> Name map. */
  46. #define Identification_Vector    0x08    /* ID Vector index -> name map. */
  47. #define FIXOBJ_SYSTEM_CALL_NAMES    0x09    /* System call index -> name */
  48. #define FIXOBJ_SYSTEM_CALL_ERRORS    0x0A    /* System call error -> name */
  49. #define GC_Daemon        0x0B    /* Procedure to run after GC. */
  50. #define Trap_Handler        0x0C    /* Abort after disaster. */
  51. /* UNUSED slot            0x0D */
  52. #define Stepper_State        0x0E    /* UNUSED in CScheme. */
  53. #define Fixed_Objects_Slots    0x0F    /* Names of these slots. */
  54. /* UNUSED slot            0x10 used to be
  55.    External_Primitives               Names of external prims. */
  56. #define State_Space_Tag        0x11    /* Tag for state spaces. */
  57. #define State_Point_Tag        0x12    /* Tag for state points. */
  58. #define Dummy_History        0x13    /* Empty history structure. */
  59. #define Bignum_One              0x14    /* Cache for bignum one. */
  60. #define System_Scheduler    0x15    /* MultiScheme:
  61.                        Scheduler for touched futures. */
  62. #define Termination_Vector    0x16    /* Names for terminations. */
  63. #define Termination_Proc_Vector    0x17    /* Handlers for terminations. */
  64. #define Me_Myself        0x18    /* MultiScheme:
  65.                        The shared fixed objects vector. */
  66. #define The_Work_Queue        0x19    /* MultiScheme:
  67.                        Where work is stored. */
  68. #define Future_Logger           0x1A    /* MultiScheme: When logging futures,
  69.                        routine to log touched futures. */
  70. #define Touched_Futures         0x1B    /* MultiScheme: When logging futures,
  71.                        vector of touched futures. */
  72. #define Precious_Objects    0x1C    /* Objects that should not be lost! */
  73. #define Error_Procedure        0x1D    /* User invoked error handler. */
  74. #define Unsnapped_Link        0x1E    /* UNUSED in CScheme. */
  75. #define Utilities_Vector    0x1F    /* UNUSED in CScheme. */
  76. #define Compiler_Err_Procedure  0x20    /* User invoked error handler
  77.                        from compiled code. */
  78. #define Lost_Objects_Base     0x21    /* Free at the end of the "real" gc. */
  79. #define State_Space_Root    0x22     /* Root of state space. */
  80. #define Primitive_Profiling_Table 0x23    /* Table of profile counts for
  81.                        primitives. */
  82.  
  83. /* Trampolines for various generic arithmetic operations.
  84.    These facilitate upwards compatibility and simplify compilation. */
  85. #define GENERIC_TRAMPOLINE_ZERO_P    0x24
  86. #define GENERIC_TRAMPOLINE_POSITIVE_P    0x25
  87. #define GENERIC_TRAMPOLINE_NEGATIVE_P    0x26
  88. #define GENERIC_TRAMPOLINE_SUCCESSOR    0x27
  89. #define GENERIC_TRAMPOLINE_PREDECESSOR    0x28
  90. #define GENERIC_TRAMPOLINE_EQUAL_P    0x29
  91. #define GENERIC_TRAMPOLINE_LESS_P    0x2A
  92. #define GENERIC_TRAMPOLINE_GREATER_P    0x2B
  93. #define GENERIC_TRAMPOLINE_ADD        0x2C
  94. #define GENERIC_TRAMPOLINE_SUBTRACT    0x2D
  95. #define GENERIC_TRAMPOLINE_MULTIPLY    0x2E
  96. #define GENERIC_TRAMPOLINE_DIVIDE    0x2F
  97. #define GENERIC_TRAMPOLINE_QUOTIENT    0x30
  98. #define GENERIC_TRAMPOLINE_REMAINDER    0x31
  99. #define GENERIC_TRAMPOLINE_MODULO    0x32
  100.  
  101. #define ARITY_DISPATCHER_TAG        0x33
  102.  
  103.  
  104. #define NFixed_Objects        0x34
  105.  
  106.